package com.hopes.bizz.close.gis.service;

import com.hopes.bizz.close.common.constant.GisRequestEnums;
import com.hopes.bizz.close.gis.vo.*;

import java.util.Date;
import java.util.List;

/**
 * @author yumr
 * @ProjectName bizz
 * @Description 封闭化管理（出入园管理）
 * @time 2023/10/26 14:46
 */
public interface ClosedInOutService {

    /**
     * 园区人员
     * @param gisCalEnum 时间纬度枚举
     * @return           返回的对象
     */
    PersonGeneralCarVO queryPerson(GisRequestEnums.GisCalEnum gisCalEnum);


    InOutParkChartVO queryPersonChart(String beginTime, String endTime);

    /**
     * 卡口车辆统计
     * @param gisCalEnum 时间纬度枚举
     * @return           返回对象
     */
    List<GateCarVO> queryGateCar(GisRequestEnums.GisCalEnum gisCalEnum);

    /**
     * 危险品车辆
     * @param gisCalEnum 时间纬度枚举
     * @return           返回对象
     */
    InOutParkVO queryHazardCar(GisRequestEnums.GisCalEnum gisCalEnum);

    /**
     * 普通车辆
     * @param gisCalEnum 时间纬度枚举
     * @return           返回的对象
     */
    PersonGeneralCarVO queryGeneralCar(GisRequestEnums.GisCalEnum gisCalEnum);

    /**
     * 普通 危险品车辆 图表统计
     * @param beginTime 开始时间
     * @param endTime   截止时间
     * @return
     */
    InOutParkChartVO queryGeneralHazardCarChart(GisRequestEnums.GenHazardEnum genHazardEnum, String beginTime, String endTime);


    /**
     * 统计多卡口车辆进出图表数据
     * @param beginTime     开始时间
     * @param endTime       截止时间
     * @return              结果集
     */
    GateCarChartVO queryMultiGateCarChart(String beginTime, String endTime);

    /**
     * 统计单卡口车辆进出图表数据
     * @param gateId        卡口Id
     * @param beginTime     开始时间
     * @param endTime       截止时间
     * @return              结果集
     */
    GateCarChartVO querySingleGateCarChart(Long gateId, String beginTime, String endTime);

    /**
     * 进出园区统计图表
     * @param enterOuterEnum   进出枚举
     * @param gisCalEnum       统计纬度
     * @return
     */
    List<EnterOuterVO> queryEnterOuterPark(GisRequestEnums.EnterOuterEnum enterOuterEnum, GisRequestEnums.GisCalEnum gisCalEnum);


    /**
     * 进出园区统计图表
     * @param beginTime   开始时间
     * @param endTime     截止时间
     * @return
     */
    EnterOuterChartVO queryEnterOuterChart(String beginTime, String endTime);
}
